{{tag>Xenial fenêtre_de_connexion GNOME tutoriel}}

----

====== Personnaliser l'arrière-plan de GDM ======

**[[:GDM]]** est le [[:fenêtre de connexion|gestionnaire de sessions]] de l'[[:environnements|environnement]] [[:GNOME]] et son bureau [[:GNOME Shell]].

Son arrière-plan par défaut est (selon les versions) soit gris avec une légère texture, soit violet uniforme. Ce n'est pas forcément très chaleureux, on va donc voir comment modifier cet arrière-plan.

<note warning>GDM n'a pas été conçu d'une manière facilement configurable. Les manipulations qui vont suivre sont par conséquent risquées pour votre système. Faites attention à :
  * Avoir sauvegardé une version originale des données que vous modifiez ;
  * Avoir la version concernée par la partie que vous appliquez ;
  * Ne pas faire la moindre faute de frappe.
</note>

<note important>Les mises à jour de GNOME Shell vont systématiquement __réinitialiser__ vos configurations : il faudra alors les refaire.

Cette manipulation n'aura pas un rendu adapté sur les configurations avec plusieurs écrans.</note>

===== Pré-requis =====

Ce tutoriel a été écrit et testé à partir d'installations d'Ubuntu 17.04 et 17.10 (GNOME Shell 3.24 et 3.26), les versions plus anciennes pourraient rencontrer des problèmes.

Les **droits d'administrations** seront nécessaires afin d'utiliser la commande [[:sudo]].

L'image à mettre en arrière-plan doit être au format ''.png'' (et si possible ne pas contenir de transparence). L'image doit être assez sombre (au moins en son centre) pour que les informations affichées par dessus soient lisibles.

===== Remarques à propos du thème utilisé =====

À partir d'Ubuntu 17.10, le thème de GDM est modifié par les développeurs d'Ubuntu afin d'assurer une cohérence visuelle avec la session "Ubuntu" par défaut((https://didrocks.fr/2017/09/11/ubuntu-gnome-shell-in-artful-day-11/)).

<note tip>Si vous installez le paquet [[apt>gnome-session]], il est possible de récupérer le thème par défaut "gris-bleu" de GDM en lançant la commande suivante **en tant qu'administrateur** :
<code>update-alternatives --config gdm3.css</code>
Choisissez alors ''gnome-shell.css'' en tapant le numéro adéquat.</note>

En fonction de si vous utilisez (ou non) un thème GDM "violet-orange", les manipulations vont différer :

===== Si votre GDM est violet-orange =====

| {{ :tutoriel:gdm:personnalisation-3-26.png?direct&600 |Exemple de résultat obtenu}} |
^ Exemple de résultat obtenu (GDM 3.26) ^

==== L'image ====
Par défaut, l'image utilisée par gdm est l'image noise-texture.png du thème principal (par exemple /usr/share/gnome-shell/theme/Yaru/).
Il est possible de la remplacer par une autre, renommée (en mode administrateur. Avec [[:Wayland]], vous pouvez accéder aux privilèges d'administration dans [[:Nautilus]] en faisant précéder le chemin de "admin:") noise-texture.png et placée dans le répertoire du thème d'origine mais il est tout à fait possible de pointer vers une autre image présente sur le disque.

Dans l'hypothèse où vous décidez de ne pas modifier noise-texture.png, passez à l'étape suivante une fois repérée l'image choisie (au format png comme rappelé ci-dessus) et son chemin.
==== Le fichier CSS ====
Puis en tant qu'administrateur, éditez le fichier ''/usr/share/gnome-shell/theme/ubuntu.css'' pour que la section ''#lockDialogGroup'' corresponde bien à :

<file css>#lockDialogGroup {
  background: #2c001e url(/usr/share/gnome-shell/theme/noise-texture.png);
  background-repeat: no-repeat;
}</file>

<note help>Le "#2c001e" correspond à la couleur, en hexadécimal, qui s'affiche si l'image est mal cadrée ou transparente, sa valeur (violet) n'est pas très importante ici.
</note>

Vous devrez sans doute spécifier la résolution de GDM - ce n'est pas forcément celle de l'image - avec le paramètre ci-dessous à ajouter à la section ''#lockDialogGroup'' (bien sûr, [WIDTH] et [HEIGHT] sont à remplacer par vos valeurs) :
<file css>background-size: [WIDTH]px [HEIGHT]px;</file>

===== Si votre GDM est gris-bleu =====

| {{ :tutoriel:gdm:personnalisation-3-24.png?direct&600 |Exemple de résultat obtenu}} |
^ Exemple de résultat obtenu (GDM 3.24) ^

Depuis la version GNOME 3.16, les thèmes de GNOME Shell (et donc de GDM) sont par défaut stockés dans des fichiers binaires (au format gresource)((Ce comportement n'est pas présent avec la session "Ubuntu", mais il impacte les sessions "GNOME", notamment dans feu [[:Ubuntu GNOME]].)). On va extraire le thème de ce fichier, le modifier, puis le recompiler.

==== Extraire le thème utilisé ====

Pour extraire le thème par défaut, vous pouvez utiliser le script ''extractgst.sh'' suivant :

<file bash>#!/bin/sh

workdir=${HOME}/shell-theme
if [ ! -d ${workdir}/theme ]; then
  mkdir -p ${workdir}/theme
fi
gst=/usr/share/gnome-shell/gnome-shell-theme.gresource

for r in `gresource list $gst`; do
        gresource extract $gst $r >$workdir/${r#\/org\/gnome\/shell/}
done</file>

Exécutez ce script.

==== Modifier le thème ====

Après avoir exécuté le script, ouvrez le répertoire ''shell-theme'' créé dans votre dossier personnel. Vous devriez y trouver, dans un dossier ''theme'', les fichiers du thème qui ont été extraits.

=== L'image ===

Renommer votre image de fond d'écran en ''noise-texture.png'', puis copiez-la dans le dossier ''shell-theme'' (écrasez l'ancienne version).

=== Le fichier XML ===

Ensuite vous devez créer, toujours dans ce répertoire, le fichier ''gnome-shell-theme.gresource.xml'' avec le contenu suivant :

<code><?xml version="1.0" encoding="UTF-8"?>
<gresources>
  <gresource prefix="/org/gnome/shell/theme">
    <file>calendar-arrow-left.svg</file>
    <file>calendar-arrow-right.svg</file>
    <file>calendar-today.svg</file>
    <file>checkbox-focused.svg</file>
    <file>checkbox-off-focused.svg</file>
    <file>checkbox-off.svg</file>
    <file>checkbox.svg</file>
    <file>close-window.svg</file>
    <file>close.svg</file>
    <file>corner-ripple-ltr.png</file>
    <file>corner-ripple-rtl.png</file>
    <file>dash-placeholder.svg</file>
    <file>filter-selected-ltr.svg</file>
    <file>filter-selected-rtl.svg</file>
    <file>gnome-shell.css</file>
    <file>gnome-shell-high-contrast.css</file>
    <file>logged-in-indicator.svg</file>
    <file>more-results.svg</file>
    <file>no-events.svg</file>
    <file>no-notifications.svg</file>
    <file>noise-texture.png</file>
    <file>page-indicator-active.svg</file>
    <file>page-indicator-inactive.svg</file>
    <file>page-indicator-checked.svg</file>
    <file>page-indicator-hover.svg</file>
    <file>process-working.svg</file>
    <file>running-indicator.svg</file>
    <file>source-button-border.svg</file>
    <file>summary-counter.svg</file>
    <file>toggle-off-us.svg</file>
    <file>toggle-off-intl.svg</file>
    <file>toggle-on-hc.svg</file>
    <file>toggle-on-us.svg</file>
    <file>toggle-on-intl.svg</file>
    <file>ws-switch-arrow-up.png</file>
    <file>ws-switch-arrow-down.png</file>
  </gresource>
</gresources></code>

=== Le fichier CSS ===

Ouvrez le fichier ''gnome-shell.css'' pour vérifier que la section ''#lockDialogGroup'' correspond bien à :

<file css>#lockDialogGroup {
  background: #2e3436 url(resource:///org/gnome/shell/theme/noise-texture.png);
  background-repeat: no-repeat;
}</file>

<note help>Le "#2e3436" correspond à la couleur, en hexadécimal, qui s'affiche si l'image est mal cadrée ou transparente, sa valeur (gris) n'est pas très importante ici.
</note>

Vous devrez sans doute spécifier la résolution de GDM - ce n'est pas forcément celle de l'image - avec le paramètre ci-dessous à ajouter à la section ''#lockDialogGroup'' (bien sûr, [WIDTH] et [HEIGHT] sont à remplacer par vos valeurs) :
<file css>background-size: [WIDTH]px [HEIGHT]px;</file>

=== Compiler ===

Enfin, ouvrez un terminal pour recompiler votre thème avec les commandes suivantes :
<code>cd ~/shell-theme/theme/
glib-compile-resources gnome-shell-theme.gresource.xml</code>

<note help>
Si la compilation renvoie une erreur à propos de ''more-results.svg'', retirez la ligne suivante du fichier XML précédemment créé :
<code>    <file>more-results.svg</file></code>
Puis recompilez.
</note>

==== Mettre le thème en place ====

Il ne vous reste plus qu'à déplacer vers ''/usr/share/gnome-shell'' le fichier ''gnome-shell-theme.gresource'' qui vient de se créer.
<note important>Il est prudent de faire une copie de sauvegarde de son thème par défaut avant d'écraser le fichier d'origine :
<code>cp /usr/share/gnome-shell/gnome-shell-theme.gresource ~/shell-theme/gnome-shell-theme.gresource.old</code>
</note>
<code>sudo mv ~/shell-theme/theme/gnome-shell-theme.gresource /usr/share/gnome-shell</code>

===== Redémarrer =====

Les modifications prendront effet au redémarrage de l'ordinateur.

===== Voir aussi =====

  * **(fr)** [[https://wiki.debian.org/fr/GDM|Documentation sur GDM pour la personnalisation]],
  * **(en)** [[https://wiki.gnome.org/Projects/GDM|Site officiel]]
  * [[:GDM]]
  * **(en)** [[https://didrocks.fr/2017/09/11/ubuntu-gnome-shell-in-artful-day-11/|À propos du thème par défaut à partir de 17.10]]

----

//Contributeurs principaux : [[:utilisateurs:J5012]], [[:utilisateurs:claudiux]], [[:utilisateurs:deobs]], [[:utilisateurs/roschan]]
, ...//
